今天宠物迷的小编给各位宠物饲养爱好者分享if update作用的宠物知识,其中也会对sql的 if update ()语句, 括号中是否可加表名?进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
这个函数是用在触发器的,触发器是针对表的,所以你在括号里面加表名是没有意义
UPDATE
返回一个布尔值,指示是否对表或视图的指定列进行了 INSERT 或 UPDATE 尝试。可以在 Transact-SQL INSERT 或 UPDATE 触发器主体中的任意位置使用 UPDATE(),以测试触发器是否应执行某些操作。
对于你的触发器.
如果
UPDATE Student SET StudentID = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 true
如果
UPDATE Student SET 其他字段 = ... WHERE ...
那么, 这个时候 Update (StudentID) 返回 flase
你这个触发器的逻辑, 基本上就是, 如果更新了 学生表的 学号。
那么 就要同步更新 成绩表中的学号
多写几个if判断就可以实现。如 创建测试表及插入数据: create table test(id int,name varchar2(10),money int);insert into test values (1,'张三',100);insert into test values (2,'李四',29);insert into test values (3,'王五',50);insert into test values (4,'赵六',56);commit;创建触发器: create or replace trigger t_test before update on test for each row begin if updating ('name') then dbms_output.put_line('name字段被修改'); elsif updating ('money') then dbms_output.put_line('money字段被修改'); end if;end;执行update语句,进行测试: update test set name='哈哈' where id=1;commit;结果截图:
触发器的触发条件仅仅是数据改变操作是否执行了,即一旦执行insert、update、delete三种命令之一,就要触发。 在update触发器中,通过if update()来过滤,看看是否需要采取什么相应动作,这种逻辑正常、合理呀。
if update(student_id) {}
表示,若student_id为真时才执行if体内的东西,那么什么情况下为真呢?只有student_id存在时才为真。
即:若存在一个student_id号,执行update操作。
我哪里清楚的啊
create trigger triGengGaiZhangHuZT on employee INSTEAD OF update
as if update (salary)
begin
declare @newSalary numeric(10,2)
declare @now = getdate()
select @newSalary = salary from updated
select @date = date from employee where emp_id = (select emp_id from updated)
if ((@newSalary 365))
print '账户余额低于1元且时间超过1年'
update employee set statue= '封存' where emp_id = (select emp_id from updated)
else
update employee set salary = @newSalary where emp_id = (select emp_id from updated)
end
go
Update A,B Set A.size=B.size Where A.chapterid=B.chapterid;
或
Update A Inner Join B On A.chapterid=B.chapterid Set A.size=B.size;
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“sql的 if update ()语句, 括号中是否可加表名?”
上一篇
家里有很多潮虫怎么办?怎么防治?
下一篇
冰雹有什么用途?